package cn.cvs.dao;

import cn.cvs.entity.StorageRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface StorageRecordMapper {
    // 查询所有入库记录(带条件)
    List<StorageRecord> selAll(@Param("name") String name,
                              @Param("supId") Integer supId,
                              @Param("status") Integer status);

    // 分页查询入库记录
    List<StorageRecord> selectList(@Param("goodsName") String goodsName,
                                  @Param("supplierId") Integer supplierId,
                                  @Param("payStatus") Integer payStatus,
                                  @Param("pageBegin") int pageBegin,
                                  @Param("pageSize") int pageSize);

    // 查询入库记录总数
    int selectCount(@Param("goodsName") String goodsName,
                   @Param("supplierId") Integer supplierId,
                   @Param("payStatus") Integer payStatus);

    // 根据ID查询入库记录
    StorageRecord selectById(Integer id);

    /**
     * 添加入库记录
     * @param storageRecord 入参
     * @return null
     * @author HD
     * */
    int add(StorageRecord storageRecord);

    // 修改入库记录
    int update(StorageRecord storageRecord);

    /**
     * 根据ID删除入库记录
     * @param id 入参
     * @return null
     * @author HD
     * */
    int deleteById(@Param("id") Integer id);


    /**
     * 根据供应商ID查询入库记录总数
     * @param id 入参
     * @return null
     * @author HD
     * @date 2025/5/23
     * @time 10:22
     * */
    int selectCountBySupplierId(@Param("id") Integer id);

    /**
     * 根据供应商ID删除入库记录
     * @param id 入参
     * @return null
     * @author HD
     * */
    int deleteBySupplierId(@Param("id") Integer id);
}
